There are a wide variety of different types of search engines and search technologies used in current computer systems. Some such engines or technologies include web search engines, and search functions implemented in other applications, such as operating systems, web browsers, and data collaboration applications (such as note taking applications).
Some of these search engines and technologies implement a “search-as-you-type” function. In this function, as an end user is typing characters into a search field, the search engine performs repeated searches against a data store or an index. In one system, a search is executed each time the user pauses in their input for a given time (such as approximately 300 ms or a different time) to reduce or control the number of queries. In another system, one search (or query) is executed for each key stroke or character input by the user. In locating matching results, the search engine may perform prefix searching, in which the search engine estimates the entire query (based on the characters received thus far) and launches the estimated query. In another embodiment, the search engine searches for results that match the characters that have been input so far, and returns those matching results. As the user continues to type additional characters into the search field, the search engine refines the search based on the additional characters and returns results based on the refined search. It can be seen that the search-as-you-type function generates a large number of queries against the data store or data corpus that is to be searched.
There are a wide variety of different types of business data systems currently being used. Such systems include customer relations management (CRM) systems, enterprise resource planning (ERP) systems, line-of-business (LOB) applications, etc. Many of these business data systems are built on a relational database. Normally, in order to look up information in a relational database, a user generates a database query that is launched against an intra-database index. This type of database index must normally comply with all relational database properties (such as atomicity, consistency, isolation, and durability). Therefore, generating an intra-database index in a relational database can be time consuming and costly in terms of performance overhead.
In addition, many business data systems are accessed by a large number of users at a given time. Therefore, it can be difficult to service all of the various queries launched by the users against the relational database in a timely manner. Significantly increasing the number of queries launched against the relational database in a business data system would likely adversely affect performance.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.